package entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

@Entity
@Table(name="OrdenPedido")
public class OrdenPedidoEntity extends DocumentoEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7539913605217963009L;
	private int numero;
	@OneToMany(cascade=CascadeType.ALL)
	@JoinColumn(name="idOrdenPedido")
	private List<CotizacionEntity> cotizaciones=new ArrayList<CotizacionEntity>();
	@ManyToOne (cascade=CascadeType.ALL)
	@JoinColumn(name="idCondicion")
	private CondicionCompraEntity condicionCompra; 
	@ManyToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="idCliente")
	private ClienteEntity cliente;
	private double total;
	private double iva;
	
	public List<CotizacionEntity> getCotizaciones() {
		return cotizaciones;
	}
	public void setCotizaciones(List<CotizacionEntity> cotizaciones) {
		this.cotizaciones = cotizaciones;
	}
	public double getTotal() {
		return total;
	}
	public void setTotal(double total) {
		this.total = total;
	}
	public double getIva() {
		return iva;
	}
	public void setIva(double iva) {
		this.iva = iva;
	}
	
	public int getNumero() {
		return numero;
	}
	public void setNumero(int numero) {
		this.numero = numero;
	}
	
	public OrdenPedidoEntity(int numero, Date fecha,
			List<ItemEntity> items, int numero2,
			List<CotizacionEntity> cotizaciones, double total, double iva) {
		super(numero, fecha, items);
		numero = numero2;
		this.cotizaciones = cotizaciones;
		this.total = total;
		this.iva = iva;
	}
	public OrdenPedidoEntity(){
		
	}
	public void calcularTotal(){
		for(int i=0;i<items.size();i++){
			ItemEntity it=items.get(i);
			this.total+=it.getPrecio()*it.getCantidad();
		}
		this.iva=this.total*0.21;
	}
	public CondicionCompraEntity getCondicionCompra() {
		return condicionCompra;
	}
	public void setCondicionCompra(CondicionCompraEntity condicionCompra) {
		this.condicionCompra=condicionCompra;
	}
	public ClienteEntity getCliente() {
		return cliente;
	}
	public void setCliente(ClienteEntity cliente) {
		this.cliente = cliente;
	}
}
